<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        var a = 100;
        var a; //这里不会变成undefined 赋值之后再声明不会被影响
        var a = "100" //弱变量
        var a = null; //清空变量
        console.log("a is " + a+''+typeof a);



        function test1() {
            var  jubu = 100; //局部变量 外部访问不到
            quanju = 100; //没有用var 是全局变量
        }
        test1(); //JS加载的时候，只加载函数名，不加载函数体。所以如果想使用内部的成员变量，需要调用函数。
        console.log('quanju',quanju);
        
        
        function test2(){
            var a = 99 ;
            console.log('能访问到函数里的全局吗'+window.quanju);//全局变量都是window属性
            console.log('就近原则测试'+a); //99 就近原则 从函数里找到外部全局
        }
        test2();
        
        //声明形参就相当在函数作用域中声明了变量
        function test3(e){
            console.log(e);
        }
        test3();


        

        // 两个变量交换 不借用第三个变量
        var num1 = 10;
        var num2 = 20;
        num1 = num1 + num2;
        num2 = num1 - num2;
        num1 = num1 - num2;
        console.log("num1 = " + num1 + "num2=" + num2);
    </script>
</head>

<body>
    <!-- <input type="button" onclick="test2()" value="test"> -->
</body>

</html>